package com.example.demo.util;

import java.io.File;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public class FileIO {
	// 使用 File 对象的方法
	public static void deleteFolder(File folder) {
		File[] files = folder.listFiles();
		if (files != null) { // 目录是否为空
			for (File f : files) {
				if (f.isDirectory()) {
					deleteFolder(f); // 递归删除子文件夹
				} else {
					f.delete(); // 删除文件
				}
			}
		}
		folder.delete(); // 删除文件夹本身
	}

	// 使用 Path 对象的方法
	public static void deleteFolder(Path path) throws IOException {
		Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
			@Override
			public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
				Files.delete(file); // 删除文件
				return FileVisitResult.CONTINUE;
			}

			@Override
			public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
				Files.delete(dir); // 删除文件夹
				return FileVisitResult.CONTINUE;
			}
		});
	}
}
